#include "mainwindow.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->Newaction,&QAction::triggered,this,&MainWindow::newActionsSlot);
    connect(ui->Openaction,&QAction::triggered,this,&MainWindow::openActionsSlot);
    connect(ui->Saveaction,&QAction::triggered,this,&MainWindow::saveActionsSlot);

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::newActionsSlot()//新建
{
    ui->textEdit->clear();//清屏
    this->setWindowTitle("新建文本文档.txt");//改Title文字
}

void MainWindow::openActionsSlot()//打开文件
{
    //打开选择文件窗口
    //返回文件地址/NULL = getOpenFileName（父类对象，title，文件路径(获取当前路径)，显示类型文件）
    QString fileName = QFileDialog::getOpenFileName(this,"选择文件",QCoreApplication::applicationFilePath(),"*.cpp");
    if(fileName.isEmpty())
    {
        QMessageBox::warning(this,"警告","请选择一个文件");//弹窗
    }
    else //获取文件路径并打开
    {
        //qDebug()<<fileName;
        QFile file(fileName); //创建文件对象
        file.open(QIODevice::ReadOnly);//打开文件 只读
        QByteArray ba = file.readAll();//读所有数据
        ui->textEdit->setText(QString(ba));
        file.close();
    }
}

void MainWindow::saveActionsSlot()//另外保存文件
{
    //返回文件地址/NULL = getSaveFileName（父类对象，title，文件路径(获取当前路径)，显示类型文件（不写表示所有文件））
    QString fileName = QFileDialog::getSaveFileName(this,"选择文件",QCoreApplication::applicationFilePath());
    if(fileName.isEmpty())
    {
        QMessageBox::warning(this,"警告","请选择一个文件");//弹窗
    }
    else //获取文件路径并打开
    {
        //qDebug()<<fileName;
        QFile file(fileName); //创建文件对象
        file.open(QIODevice::WriteOnly);//打开文件 只写
        QByteArray ba;
        //ui->textEdit->toPlainText();
        ba.append(ui->textEdit->toPlainText());//将QString转换QByteArray
        file.write(ba);//写入的是 QByteArray 类型
        file.close();
    }
}

void MainWindow::keyPressEvent(QKeyEvent *k)//##键盘事件
{
    if(k->modifiers() == Qt::ControlModifier && k->key() == Qt::Key_S)//常用热键Ctrl && 按键S
    {
        saveActionsSlot();//调用保存函数
    }
}

void MainWindow::mousePressEvent(QMouseEvent *m)//##鼠标事件
{
    QPoint pt = m->pos();//##获取鼠标的位置
    qDebug()<<pt;
    if(m->button() ==Qt::LeftButton)//##左键被按下
    {
        qDebug()<<"左键被按下";
    }
    if(m->button() ==Qt::RightButton)//##左键被按下
    {
        qDebug()<<"右键被按下";
    }
}

